package co.edu.udea.herbario.bl;

import co.edu.udea.herbario.dao.FamiliaDao;
import co.edu.udea.herbario.dto.Familia;
import co.edu.udea.herbario.dao.cnf.FactoryDao;
import java.util.ArrayList;

/**
 * Clase que contiene la validacion del formato de los datos de entrada para obtener la informacion
 * de una familia
 *
 * @author Marcela
 */
public class InformacionFamilia
{
    /**
     * Consulta la informacion especifica de familia: codigo, nombre y fecha de ingreso al
     * herbario
     *
     * @param idFamilia es el identificador de la familia sobre la cual se desea ver la informacion
     *
     * @return retorna un objeto de tipo Familia
     */
    public Familia obtenerFamilia(int idFamilia)
    {
        //Creacion de un objeto tipo FamiliaDao a traves del FactoryDao
        FamiliaDao familiaDao = FactoryDao.obtenerInstancia().getFamiliaDao();
        Familia familia = null;

        //Validacion de datos de entrada
        if(!"".equals(idFamilia))
        {
            try
            {
                //Se obtiene la familia asociada al consecutivo pasado como parametro
                familia = familiaDao.obtenerFamilia(idFamilia);
            }
            catch(NumberFormatException e)
            {
                 e.printStackTrace();
            }
        }

        return familia;
    }

    /**
     * Metodo que obtiene las familias que contengan la cadena de caracteres pasada como parametro
     * @param valorBusqueda es la cadena de caracteres que deben contener los nombres de las familias recuperadas
     * @return
     */
    public ArrayList obtenerFamilias(String valorBusqueda)
    {
        FamiliaDao familiaDao = FactoryDao.obtenerInstancia().getFamiliaDao();
        ArrayList <String> familias = null;
        familias = (ArrayList<String>) familiaDao.obtenerNombresFamilias(valorBusqueda);

        return familias;
    }
}
